package org.balthie.demo.jvm;

//https://blog.csdn.net/wuzhiwei549/article/details/79929183

//如果一个线程调用了 object.wait() 方法，那么它就会进入 object 对象的等待队列（wait set）。
//这个等待队列中，可能会有多个线程，因为系统运行多个线程同时等待某一个对象。
//当 object.notify() 方法被调用时，它就会从这个等待队列中随机选择一个线程，并将其唤醒。
//原文链接：https://blog.csdn.net/Shockang/article/details/117718081

//https://blog.csdn.net/zwjyyy1203/article/details/106217887
public class ObjectMonitor {
	public void monitor() throws InterruptedException {
		synchronized(this.getClass())
		{
			this.getClass().wait();
		}
	}
}

//5.3. monitor 等待
//上文有提到，如果锁竞争失败后，会调用EnterI (THREAD) 函数，还是在objectMonitor.cpp源码中搜索：::EnterI
//
